package com.zcl.mapper;

import com.zcl.pojo.User;
import org.apache.ibatis.annotations.*;

import java.util.List;

/**
 * @author zcl
 * @date 2025/6/20 10:53
 * 告诉Mybatis这是一个Mapper接口
 */
@Mapper
public interface UserMapper {

    /**
     * 查询所有用户
     * @return
     * @Select 注解：告诉Mybatis这是一个查询语句
     * 注意：在使用#{}占位符时，Mybatis会自动将参数转换为字符串，所以不需要手动转换
     */
//    @Select("select * from user")
    public List<User> findAll();

    /**
     * 根据id删除用户
     * @param id
     * @return
     * @Delete 注解：告诉Mybatis这是一个删除语句
     */
//    @Delete("delete from user where id = #{id}")
    public Integer deleteById(Integer id);

    /**
     * 新增用户
     * @param user
     * @return
     * @Insert 注解：告诉Mybatis这是一个新增语句
     */
//    @Insert("INSERT INTO user (name, password, email) VALUES (#{name}, #{password}, #{email})")
    public Integer insertUser(User user);

    /**
     * 修改用户
     * @param user
     * @return Integer
     * @Update 注解：告诉Mybatis这是一个修改语句
     */
//    @Update("UPDATE user SET name = #{name}, password = #{password}, email = #{email} WHERE id = #{id}")
    public Integer updateUser(User user);

    /**
     * 根据名字和密码查询用户
     * @param name, password
     * @return
     * @Select 注解：告诉Mybatis这是一个查询语句
     */
//    @Select("select * from user where name = #{name} and password = #{password}")
    public User findByNamePassword(@Param("name") String name, @Param("password") String password);

}
